package org.wheel.example.bean.clazz;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Set;

/**
 * 类模型, 简单的单个类中的所有属性
 * 后台代码, 向前端生成的过程中, 后端类对象所需的属性
 * @author lanjf2000
 *
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClazzModel {

    /**
     * 类名称
     */
    private String clazzName;
    /**
     * 类的包路径: 第一行 package com.zhigongtech.XXX.XXX;
     */
    private String clazzPackage;
    /**
     * 父类名称 如果有继承类, 此位父类的类名称
     */
    private String superClazzName;
    /**
     * 父类的导入的全路径. 导入的 import xxx.xxx.xxx; 的类全路径
     */
    private String superClazzPackage;
    /**
     * 类所属字段属性
     */
    List<TableFieldExtend> fields;

    /**
     * 在原有PKG导入中是否存在TableId注解，如果存在：true，就不需要自己写import，如果不存在：false，需要自己写import
     */
    private boolean existsTableId;
    /**
     * 是否存在策略，目前是更新策略
     */
    private boolean existsFieldStrategy;

    /**
     * 需要剔除掉的import引用包
     */
    private List<String> excludeImportPackages;
    /**
     * 包导入信息
     */
    private Set<String> importPackages;

    /**
     * controller的@RequestMapping中的参数路径前缀
     */
    private String controllerPrefixPath;
    /**
     * controller的@RequestMapping中的参数路径后缀
     */
    private String controllerSuffixPath;
}
